package com.wwtech.epp.ui.activity.friend.contract;

import com.chad.library.adapter.base.entity.MultiItemEntity;
import com.wwtech.epp.db.Friend;
import com.wwtech.epp.ui.activity.base.BasePresenter;
import com.wwtech.epp.ui.activity.base.BaseView;

import java.util.ArrayList;
import java.util.Map;

/**
 * @author hzp
 * @Package The contract for AddPersonActivity
 * @Description: $description
 * @date 2017/09/12 23:05:17
 */
public interface AddPersonContract {
    interface View extends BaseView<AddPersonContractPresenter> {
        /**
         *
         */
        void showProgressDialog();

        /**
         *
         */
        void closeProgressDialog();

        void groupMemberBack(ArrayList<Friend> list);

        void onCheckedPersonChange(ArrayList<MultiItemEntity> list, ArrayList<Friend> alist);


        void onCheckedFriendChange(ArrayList<MultiItemEntity> list, ArrayList<Friend> alist);

        void onConfirmClick(ArrayList<Friend> list);
        void handlerFriendCheckChange(Friend friend, boolean isChecked);
    }

    interface AddPersonContractPresenter extends BasePresenter {

        /**
         * 拉取群组里的成员信息
         * @param groupId
         * @param map
         */
        void getGroupMember(String groupId, Map map);

        /**
         * 选中的人员数据发生改变
         * @param friend
         * @param isChecked
         */
        void onCheckChange(Friend friend, boolean isChecked);

        void onFriendCheckChange(Friend friend, boolean isChecked);

        void getNodeMember(String nodeId, Map map);

        void onConfirmClick();

        void init(ArrayList<Friend> list);
    }
}